Machine-to-machine (M2M) technologies allow devices to communicate more directly with each other using wired and wireless communication systems. M2M technologies enable further realization of the Internet of Things (IoT), a system of uniquely identifiable objects and virtual representations of such objects that communicate with each other and over a network, such as the Internet. IoT may facilitate communication with even mundane everyday objects, such as products in a grocery store or appliances in a home, and thereby reduce costs and waste by improving knowledge of such objects. For example, stores may maintain very precise inventory data by being able to communicate with, or obtain data from, objects that may be in inventory or may have been sold.
M2M service nodes and applications presently rely on static configurations or pre-provisioning to provide/access services from a M2M service layer. That is, there is inefficient support for dynamically requesting various features or functionalities of a specific service at different times. For example, existing oneM2M provides no mechanisms for a middle node (MN) common service entity (CSE) to dynamically request storage from an infrastructure node (IN)-CSE. Also, an IN-CSE has no service to manage the number of devices that an IN-application entity (AE) can manage and/or how frequently the IN-AE can issue requests to the IN-CSE.
The static configurations directly affect throughput. Namely, the flexibility of the M2M server in offering services to the M2M application is very limited. Accordingly, pre-configured services may not be the optimal choice for the M2M server and/or the M2M device. For example, services that are required may change due to a requirement change or context change, e.g., the M2M server has more registered devices or the M2M device moves to a new location with more communication constraints.